<?xml version='1.0'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>

  <head>

    <title>Alternatives to SoapTrace.Net</title>

    <link href="../css/styles.css" rel="stylesheet" type="text/css"/>
  </head>

  <body>

    <h1>Existing Utilities</h1>

    <h2>Pocket Soap</h2>

    <ul>

      <li>

        <p>YATT - a packet capture utility.</p>

      </li>

      <li>

        <p>tcptrace - a tcp proxy. Captures raw tcp data.</p>

      </li>

    </ul>

    <p><a href="http://www.pocketsoap.com/"
     title="Go to pocketsoap.com">http://www.pocketsoap.com</a></p>

    <p>These are great programs, but no source code is available and 
    they are not customisable. They give you access to the raw data, 
    but if you are sending xml as part of the soap envelope the 
    messages quickly become unreadable.</p>

    <h2>Java Soap Trace</h2>

    <p>Involves a whole load of java classes to be installed. This is 
    one of the reasons the guy behind pocket soap wrote his utility 
    programs.</p>

    <h2>Soap Scope</h2>

    <p><a href="http://www.mindreef.com/"
     title="Go to Mindreef's website.">http://www.mindreef.com</a></p>

    <p>A commercial soap trace utility. Not tried this. The guys behind 
    this are ex-Numega so this is bound to be a good development tool. 
    Has similar features to the SoapTrace.Net project, but it is not 
    free or open source.</p>

    <h2>.Net Soap Hooks</h2>

    <p>It looks as though .Net allows you to monitor soap messages from 
    your own .Net application via message sinks. Not looked into this. 
    Useful if you are only concerned with .Net code.</p>

    <h2>Microsoft's Soap Trace</h2>

    <p>Provided free as part of the Soap SDK a few years ago. No longer 
    supported. The main reason for the existence of the SoapTrace.Net 
    project is because of the limitations of the otherwise excellent 
    Microsoft's Soap Trace utility.</p>

    <p>Limitations:</p>

    <ol>

      <li>

        <p>It occasionally crashes.</p>

      </li>

      <li>

        <p>It uses Internet Explorer to display the resulting soap 
        messages. Intermittently either IE or the soap trace 
        application gets confused and refuses to display the soap 
        message.</p>

      </li>

      <li>

        <p>It cannot be customised. If for some reason you decide to 
        send gzip/base 64 encoded data through the web service you 
        cannot see what the actual data is.</p>

      </li>

      <li>

        <p>No source code is provided.</p>

      </li>

      <li>

        <p title="View information about the WSE 2.0 Tracing Utility.">
        The list view display of connections is not that useful if you 
        are just interested in seeing soap messages sent from 
        applications on your local machine. The list view displays the 
        IP address of the connecting client application.</p>

      </li>

      <li>

        <p>It does not handle "chunked" data.</p>

      </li>

    </ol>

    <p />

    <p>The main reasons for looking into a new soap trace tool were 
    items 3) and 6).</p>

    <h2>WSE 2.0 Tracing Utilities</h2>

    <p><a href="http://mtaulty.com/blog/archive/2004/05/25/433.aspx"
    >WSE 2.0 Tracing Utility</a></p>

    <p>
    <a href="http://blogs.msdn.com/smguest/archive/2004/08/19/217394.aspx"
    >WseTrace</a></p>

    <p>If you are using Web Service Enhancements 2.0 then these 
    utilities can be used.</p>

    <p>These two utilities are compared at 
    <a href="http://www.softwaremaker.net/blog/PermaLink,guid,a2eb541c-3264-4caf-be40-0d861cb5a6e5.aspx"
    >Softwaremaker.net</a>.</p>

    <h2>Webservice Probe</h2>

    <p><a>http://www.codeproject.com/cs/webservices/webserviceprobe.asp</a></p>

    <p>The .Net framework provides a way to monitor Soap messages.  If 
    the client or the server is written in .Net then a soap extension 
    can be used.</p>

    <h1>WinPcap.Net</h1>

    <p>The SoapTrace.Net project includes a set of C# classes 
    that wrap access to WinPcap.</p>

    <h1>Existing WinPcap.Net code</h1>

    <h2>Codeproject</h2>

    <p>On CodeProject there's two articles about a WinPCap wrappers for 
    .Net, unfortunately both of these do not contain any source code, 
    they only provide a .Net dll.</p>

    <p><a href="http://www.codeproject.com/csharp/pktcap.asp"
    >http://www.codeproject.com/csharp/pktcap.asp</a></p>

    <p><a href="http://www.codeproject.com/dotnet/dotnetwinpcap.asp"
    >http://www.codeproject.com/dotnet/dotnetwinpcap.asp</a></p>

    <p>There is a .Net WinPcap packet analysis tool on CodeProject with 
    source code. The code does not wrap WinPCap but instead goes more 
    low level and "port[s] the base library of WinPCap named 
    PacketNt.dll to C#". Whilst this looks good all of the data packet 
    classes work with UI elements (e.g. the Parser method talks 
    directly to ListView items) so there is no clean separation of UI 
    from back end code.</p>

    <p><a href="http://www.codeproject.com/pacanal"
    >http://www.codeproject.com/pacanal</a></p>

    <h2>Sourceforge</h2>

    <p>On SourceForget there's a WinPcap two .Net project, but the 
    first one, WinPcap Wrapper, was opened in 2002 and seems to have 
    stalled, and the other, PcapSharp, was created in August 2004, but 
    has not released any code.</p>

    <p><a href="http://sourceforge.net/projects/wincap/"
    >http://sourceforge.net/projects/wincap/</a></p>

    <p><a href="http://sourceforge.net/projects/pcapsharp/"
    >http://sourceforge.net/projects/pcapsharp/</a></p>

    <p>For these reasons the SoapTrace.Net includes its own set of .Net 
    wrapper classes for WinPCap.</p>

  </body>

</html>

